home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / devel / vbcc-68k-src / machines / amiga68k / libsrc / string / strstr.c < prev    next >
C/C++ Source or Header  |  1999-01-01  |  779b  |  50 lines

  1. #include <string.h>
  2.  
  3. /*
  4. ** strstr() - find a String within a buffer (string).
  5. **
  6. ** Made by Kasper B. Graversen (c) 1996
  7. **
  8. ** This is freeware - use at own risc.
  9. */
  10.  
  11. char *strstr(const char *buf, const char *str)
  12. {
  13.     size_t done;
  14.     size_t len_s = strlen(str);
  15.     const char *t;
  16.     char c;
  17.  
  18.     do
  19.     {
  20.         if(*str == *buf)
  21.         {
  22.             done = len_s;
  23.  
  24.             t = str + 1;
  25.             buf++;
  26.  
  27.             while((--done) && (*t == *buf))
  28.             {
  29.                 t++;
  30.                 buf++;
  31.             }
  32.  
  33.             if(!done)
  34.             {
  35.                 buf -= len_s;
  36.                 return((char *)buf);
  37.             }
  38.             else
  39.                 buf--;
  40.         }
  41.  
  42.     } while((c = *buf++) != 0);
  43.  
  44.     /* nothing found */
  45.     return(0);
  46. }
  47.  
  48.  
  49.  
  50.